home *** CD-ROM | disk | FTP | other *** search
-
- /* Generated by Interface Builder */
-
- // This handles a lot of the logic of the game; it has application delegate
- // methods to deal with start up and shut down of the application. It also
- // has some window delegate methods that work in conjunction with the game
- // window (window with the playing field). It starts and stops the game,
- // odes pausing, makes sure initialization is done properly, moves from
- // level to level, and tracks the score along with various bonuses.
-
- #import <objc/Object.h> // superclass
- #import <objc/typedstream.h> // highscore tables
- #import <appkit/Matrix.h> // matrix controls' methods
- #import <appkit/Control.h> // various controls' methods
- #import <appkit/Panel.h> // Alert Panels
- #import <appkit/defaults.h> // preferences (defaults)
- #import <appkit/Application.h> // application stuff
- #import <appkit/TextField.h> // high score text fields
- #import "GameView.h" // the brain's partner in crime
- #import "HighScoreTable.h" // to handle high scores
-
- @interface GameBrain:Object
- {
- id alert; // tells user to wait during load
- id levelText; // textField on status window
- id gameScreen; // gameView instance
- id topScoreText; // high score textField on status window
- id scoreText; // score textField on status window
- id pauseMenuCell; // menuCell that pauses/unpauses game
- id gameWindow; // window holding gameView
- id highScoreTable; // object to handle High Scores
- id preferencesBrain; // object to handle Preferences Panel
- id infoController; // object to put out info/help panels
- id soundPlayer; // the object handling the sounds
- id loadingPanel; // to tell the user we're awake
- id fruitBasket; // displays fruit for each level
- id pacsLeft; // displays PacMen left
-
- BOOL paused; // game is paused flag
- BOOL ranOnce; // did the player at least play one game?
-
- // instance variables to hold preferences and game status:
- int score, level, viruses, speed, ghostCount, pointsToNextBonus, lastBonus;
- }
-
- - init; // designated initializer
- - (int)level; // returns current play level
- - (int)speed; // returns speed
-
- - zeroScore;
- - addToScore:(int)increment; // add an int to the score
- - gameOver; // end the game & wrap it up, disp. "game over"
- - (int)pause; // pause the game - internal method
- - (int)paused; // are we paused?
- - unpause; // unpause the game - internal method
- - showHigh; // update the "high score field
- // Interface Builder (IB) methods:
- - pauseGame:sender; // to be sent by menu item
- - startNewGame:sender; // called by New Game menu item and on startup
- - unpauseGame:sender; // same as pauseGame:
- - gameOver:sender; // sent by gameScreen when game is over.
- - nextLevel:sender; // advance game to next level - internal
-
- - (int)ateGhost; // eating ghosts is tracked by these methods since
- - resetGhostScore; // the score depends on how many ghosts are eaten
-
- - appWillInit:sender; // puts up loading alert.
- - appDidInit:sender; // starts up the game on launch
- - appDidBecomeActive:sender; // reactivates the game
- - appDidHide:sender; // deactivates the game
- - appDidResignActive:sender; // reactivates the game
- - appDidUnhide:sender; // deactivates the game
- - appWillTerminate:sender; // saves high scores and preferences
- - quit:sender; // to catch the "quit" menu item
-
- - windowDidResginMain:sender; // do pause if window loses main status
- - windowDidResignKey:sender; // do pause if window loses key status
- - windowDidBecomeKey:sender; // do unpause if window gains key status
- - windowDidMove:sender; // move fruit basket and status with game window
-
-
- @end
-